home *** CD-ROM | disk | FTP | other *** search
/ Danny Amor's Online Library / Danny Amor's Online Library - Volume 1.iso / html / rfc / rfcxxxx / rfc1736 < prev    next >
Text File  |  1995-07-25  |  22KB  |  564 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7. Network Working Group                                           J. Kunze
  8. Request for Comments: 1736                             IS&T, UC Berkeley
  9. Category: Informational                                    February 1995
  10.  
  11.  
  12.        Functional Recommendations for Internet Resource Locators
  13.  
  14. Status of this Memo
  15.  
  16.    This memo provides information for the Internet community.  This memo
  17.    does not specify an Internet standard of any kind.  Distribution of
  18.    this memo is unlimited.
  19.  
  20. 1. Introduction
  21.  
  22.    This document specifies a minimum set of requirements for Internet
  23.    resource locators, which convey location and access information for
  24.    resources.  Typical examples of resources include network accessible
  25.    documents, WAIS databases, FTP servers, and Telnet destinations.
  26.  
  27.    Locators may apply to resources that are not always or not ever
  28.    network accessible.  Examples of the latter include human beings and
  29.    physical objects that have no electronic instantiation (that is,
  30.    objects without an existence completely defined by digital objects
  31.    such as disk files).
  32.  
  33.    A resource locator is a kind of resource identifier.  Other kinds of
  34.    resource identifiers allow names and descriptions to be associated
  35.    with resources.  A resource name is intended to provide a stable
  36.    handle to refer to a resource long after the resource itself has
  37.    moved or perhaps gone out of existence.  A resource description
  38.    comprises a body of meta-information to assist resource search and
  39.    selection.
  40.  
  41.    In this document, an Internet resource locator is a locator defined
  42.    by an Internet resource location standard.  A resource location
  43.    standard in conjunction with resource description and resource naming
  44.    standards specifies a comprehensive infrastructure for network based
  45.    information dissemination.  Mechanisms for mapping between locators,
  46.    names, and descriptive identifiers are beyond the scope of this
  47.    document.
  48.  
  49. 2. Overview of Problem
  50.  
  51.    Network-based information resource providers require a method of
  52.    describing the location of and access to their resources.
  53.    Information systems users require a method whereby client software
  54.    can interpret resource access and location descriptions on their
  55.  
  56.  
  57.  
  58. Kunze                                                           [Page 1]
  59.  
  60. RFC 1736                Recommendations for IRLs           February 1995
  61.  
  62.  
  63.    behalf in a relatively transparent way.  Without such a method,
  64.    transparent and widely distributed, open information access on the
  65.    Internet would be difficult if not impossible.
  66.  
  67. 2.1 Defining the General Resource Locator
  68.  
  69.    The requirements listed in this document impose restrictions on the
  70.    general resource locator.  To better understand what the Internet
  71.    resource locator is, the following general locator definition
  72.    provides some contrast.
  73.  
  74.         Definition:  A general resource locator is an object
  75.                      that describes the location of a resource.
  76.  
  77.    This definition deliberately allows many degrees of freedom in order
  78.    to contain the furthest reaches of the wide-ranging debate on
  79.    resource location standards.  Vast as it is, this problem space is a
  80.    useful backdrop for discussion of the requirements (later) that
  81.    generate a smaller, more manageable problem space.  A resource
  82.    location standard shrinks the space again by applying additional
  83.    requirements.
  84.  
  85.    Consider the definition in four parts: (1) A general resource locator
  86.    is an object (2) that describes (3) the location of (4) a resource.
  87.  
  88. 2.1.1.  A general resource locator is an object...
  89.  
  90.    The object could be a complex data structure.  It could be a
  91.    contiguous sequence of bytes.  It could be a pair of latitude-
  92.    longitude coordinates, or a three-color road map printed on paper.
  93.    It could be a sequence of characters that are capable of being
  94.    printed on paper.
  95.  
  96. 2.1.2.  ...that describes
  97.  
  98.    In the fully general case, there are many ways that a resource
  99.    locator could describe the location.  It could employ a graphical or
  100.    natural language description.  It could be heavily encoded or
  101.    compressed.  It could be lightly encoded and readily understandable
  102.    by human beings.  The description could be a multi-level hierarchy
  103.    with common semantics at each level.  It could be a multi-level
  104.    hierarchy with common semantics at only the first two levels, where
  105.    semantics below the second level depend on the value given at the
  106.    first level.  These are just a few possibilities.
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114. Kunze                                                           [Page 2]
  115.  
  116. RFC 1736                Recommendations for IRLs           February 1995
  117.  
  118.  
  119. 2.1.3.  ...the location of
  120.  
  121.    A resource locator describes a location but never guarantees that
  122.    access may be established.  While access is often desired when
  123.    clients follow location instructions given in a conformant resource
  124.    locator, the resource need not exist any longer or need not exist
  125.    yet.  Indeed it may never exist, even though the locator continues to
  126.    describe a location where a resource might exist (e.g., it might be
  127.    used as a placeholder with resource availability contingent upon an
  128.    event such as a payment).
  129.  
  130.    Furthermore, the nature of certain potential resources, especially
  131.    animate beings or physical objects with no electronic instantiation,
  132.    makes network access meaningless in some cases; such resources have
  133.    locators that would imply non-networked access, but again, access is
  134.    not guaranteed.
  135.  
  136. 2.1.4.  ...a resource.
  137.  
  138.    A resource can be many things.  Besides the non-networked or non-
  139.    electronic resources just mentioned, familiar examples are an
  140.    electronic document, an image, a server (e.g., FTP, Gopher, Telnet,
  141.    HTTP), or a collection of items (e.g., Gopher menu, FTP directory,
  142.    HTML page).  Other examples accompany multi-function protocols such
  143.    as Z39.50, which can perform single round trip network access,
  144.    session-oriented search refinement, and index browsing.
  145.  
  146. 2.2 Producers and Interpreters of Resource Locators
  147.  
  148.    Central to the discussion of locator requirements is the issue of
  149.    parsability.  This is the ability of an agent to recognize or
  150.    understand a locator in whole or in part.  Discussion may be assisted
  151.    by clearly distinguishing the two main actions associated with
  152.    locators.
  153.  
  154.    Resource locators are both produced and interpreted.  Producers are
  155.    bound by the resource location standards that are in turn bound by
  156.    requirements listed in this document.  Interpreters of locators are
  157.    not bound by the requirements; they are beneficiaries of them.
  158.  
  159. 2.2.1 Resource Locator Interpreters
  160.  
  161.    A resource locator is interpreted by interpreting agents, which in
  162.    this document are simply called interpreters.  Interpreters may be
  163.    either human beings or software.  Along the way to establishing
  164.    access based on information in a locator, one or more interpreters
  165.    may be employed.  Some examples of multiple interpreters processing a
  166.    single locator illustrate the concept that a resource locator may be
  167.  
  168.  
  169.  
  170. Kunze                                                           [Page 3]
  171.  
  172. RFC 1736                Recommendations for IRLs           February 1995
  173.  
  174.  
  175.    understandable only in part by each of several interpreters, but
  176.    understandable in its entirety by a combination of interpreters.
  177.  
  178.    In the first example, a software interpreter recognizes enough of a
  179.    locator to understand to which external agent it needs to forward it.
  180.    Here, the external agent might be a user and the locator a library
  181.    call number; the software forwards the locator simply by displaying
  182.    it. The agent might be a network software layer specializing in a
  183.    particular communications protocol; once the service is recognized,
  184.    the locator is forwarded to it along with an access request.
  185.  
  186.    In another example, a human interpreter might also recognize enough
  187.    of a locator to understand where to forward it.  Here, the person
  188.    might be a user who recognizes a library call number as such but who
  189.    does not understand the location information encoded in it; the
  190.    person forwards it to a library employee (an external agent) who
  191.    knows how to establish access to the library resource.
  192.  
  193.    A prerequisite to interpreting a locator is understanding when an
  194.    object in question actually is a locator, or contains one or more
  195.    locators.  Some constrained environments make this question easy to
  196.    answer, for example, within HTML anchors or Gopher menu items.  Less
  197.    constrained environments, such as within running text, make it more
  198.    difficult to answer without well-defined assumptions.  A resource
  199.    location standard needs to make any such assumptions explicit.
  200.  
  201. 2.2.2 Resource Locator Producers
  202.  
  203.    Resource locators are produced in many ways, often by an agent that
  204.    also interprets them.  The provider of a resource may produce a
  205.    locator for it, leaving the locator in places where it is intended to
  206.    be discovered, such as an HTML page, a Gopher menu, or an
  207.    announcement to an e-mail list.
  208.  
  209.    Non-providers of resources can be major producers of locators; for
  210.    example, WWW client software produces locators by translating foreign
  211.    resource locators (e.g., Gopher menu items) to its own format.  Some
  212.    locator databases (e.g., Archie) have been maintained by automated
  213.    processes that produce locators for hundreds of thousands of FTP
  214.    resources that they "discover" on the Internet.
  215.  
  216.    Users are major producers of resource locators.  A user constructing
  217.    one to share with others is responsible for conformance with locator
  218.    standards.  Sometimes a user composes a resource locator based on an
  219.    educated guess and submits it to client software with the intent of
  220.    establishing access.  Such a user is a producer in a sense, but if
  221.    the locator is purely for personal consumption the user is not bound
  222.    by the requirements.  In fact, some client software may offer as a
  223.  
  224.  
  225.  
  226. Kunze                                                           [Page 4]
  227.  
  228. RFC 1736                Recommendations for IRLs           February 1995
  229.  
  230.  
  231.    service to translate abbreviated, non-conformant locators entered by
  232.    users into successful access instructions or into conformant locators
  233.    (e.g., by adding a domain name to an unqualified hostname)
  234.  
  235. 2.3 Uniqueness of Resource Locators
  236.  
  237.    The topic of a "uniqueness" requirement for resource locators has
  238.    been discussed a great deal.  This document considers the following
  239.    aspects of uniqueness, but deliberately rejects them as requirements.
  240.    It is incumbent upon a resource location standard that takes on this
  241.    topic to be clear about which aspects it addresses.
  242.  
  243. 2.3.1. Uniqueness and Multiple Copies of a Resource
  244.  
  245.    A uniqueness requirement might dictate that no identical copies of a
  246.    resource may exist.  This document makes no such requirement.
  247.  
  248. 2.3.2. Uniqueness and Deterministic Access
  249.  
  250.    A uniqueness requirement might dictate that the same resource
  251.    accessed in one attempt will also be the result of any other
  252.    successful attempt.  This document makes no such requirement, nor
  253.    does it define "sameness".  It is inappropriate for a resource
  254.    location standard to define "sameness" among resources.
  255.  
  256. 2.3.3. Uniqueness and Multiple Locators
  257.  
  258.    A uniqueness requirement might dictate that a resource have no more
  259.    than one locator unless all such locators be the same.  This document
  260.    makes no such requirement, nor does it define "sameness" among
  261.    locators (which a standard might do using, for example,
  262.    canonicalization rules).
  263.  
  264. 2.3.4. Uniqueness, Ambiguity, and Multiple Objects per Access
  265.  
  266.    A uniqueness requirement might dictate that a resource locator
  267.    identify exactly one object as opposed to several objects.  This
  268.    document makes no general definition of what constitutes one object,
  269.    several objects, or one object consisting of several objects.
  270.  
  271. 3. Resource Access and Availability
  272.  
  273.    A locator never guarantees access, but establishing access is by far
  274.    the most important intended application of a resource locator.  While
  275.    it is considered ungracious to advertize a locator for a resource
  276.    that will never be accessible (whether a "networkable" resource or
  277.    not), it is normal for resource access to fail at a rate that
  278.    increases with the age of the locator used.
  279.  
  280.  
  281.  
  282. Kunze                                                           [Page 5]
  283.  
  284. RFC 1736                Recommendations for IRLs           February 1995
  285.  
  286.  
  287.    Resource access can fail for many reasons.  Providers fundamentally
  288.    affect accessibility by moving, replacing, or deleting resources over
  289.    time.  The frequency of such changes depends on the nature of the
  290.    resource and provider service practices, among other things.  A
  291.    locator that conforms to a location standard but fails for one of
  292.    these reasons is called "invalid" for the purposes of this document;
  293.    the term invalid locator does not apply to malformed or non-
  294.    conformant locators.  Resource naming standards address the problem
  295.    of invalid locators.
  296.  
  297.    Ordinary provider support policies may cause resources to be
  298.    inaccessible during predictable time periods (e.g., certain hours of
  299.    the day, or days of the year), or during periods of heavy system
  300.    loading.  Rights clearance restrictions impossible to express in a
  301.    locator also affect accessibility for certain user populations.
  302.    Heavy network load can also prevent access.  In such situations, this
  303.    document calls a resource "unavailable".  A locator can both be valid
  304.    and identify a resource that is unavailable.  Resource description
  305.    standards address, among other things, some aspects of resource
  306.    availability.
  307.  
  308.    In general, the probability with which a given resource locator leads
  309.    to successful access decreases over time, and depends on conditions
  310.    such as the nature of the resource, support policies of the provider,
  311.    and loading of the network.
  312.  
  313. 4. Requirements List for Internet Resource Locators
  314.  
  315.    This list of requirements is applied to the set of general locators
  316.    defined in section 2.1.  The resulting subset, called Internet
  317.    locators in this document, is suitable for further refinement by an
  318.    Internet resource location standard.  Some requirements concern
  319.    locator encoding while others concern locator function.
  320.  
  321.    One requirement from the original draft list was dropped after
  322.    extensive discussion revealed it to be impractical to meet.  It
  323.    stated that with a high degree of reliability, software can recognize
  324.    Internet locators in certain relatively unstructured environments,
  325.    such as within running ASCII text.
  326.  
  327. 4.1 Locators are transient.
  328.  
  329.    The probability with which a given Internet resource locator leads to
  330.    successful access decreases over time.  More stable resource
  331.    identifier schemes are addressed in resource naming standards and are
  332.    outside the scope of a resource location standard.
  333.  
  334.  
  335.  
  336.  
  337.  
  338. Kunze                                                           [Page 6]
  339.  
  340. RFC 1736                Recommendations for IRLs           February 1995
  341.  
  342.  
  343. 4.2 Locators have global scope.
  344.  
  345.    The name space of resource locators includes the entire world.  The
  346.    probability of successful access using an Internet locator depends in
  347.    no way, modulo resource availability, on the geographical or Internet
  348.    location of the client.
  349.  
  350. 4.3 Locators are parsable.
  351.  
  352.    Internet locators can be broken down into complete constituent parts
  353.    sufficient for interpreters (software or human) to attempt access if
  354.    desired.  While these requirements do not bind interpreters, three
  355.    points bear emphasizing:
  356.  
  357. 4.3.1  A given kind of locator may still be parsable even if a given
  358.        interpreter cannot parse it.
  359.  
  360. 4.3.2  Parsable by users does not imply readily parsable by untrained
  361.        users.
  362.  
  363. 4.3.3  A given locator need not be completely parsable by any one
  364.        interpreter as long as a combination of interpreters can parse
  365.        it completely.
  366.  
  367. 4.4 Locators can be readily distinguished from naming and descriptive
  368.     identifiers that may occupy the same name space.
  369.  
  370.    During a transition period (of possibly indefinite length), other
  371.    kinds of resource identifier are expected to co-exist in data
  372.    structures along with Internet locators.
  373.  
  374. 4.5 Locators are "transport-friendly".
  375.  
  376.    Internet locators can be transmitted from user to user (e.g, via e-
  377.    mail) across Internet standard communications protocols without loss
  378.    or corruption of information.
  379.  
  380. 4.6 Locators are human transcribable.
  381.  
  382.    Users can copy Internet locators from one medium to another (such as
  383.    voice to paper, or paper to keyboard) without loss or corruption of
  384.    information.  This process is not required to be comfortable.
  385.  
  386.  
  387.  
  388.  
  389.  
  390.  
  391.  
  392.  
  393.  
  394. Kunze                                                           [Page 7]
  395.  
  396. RFC 1736                Recommendations for IRLs           February 1995
  397.  
  398.  
  399. 4.7 An Internet locator consists of a service and an opaque parameter
  400.     package.
  401.  
  402.    The parameter package has meaning only to the service with which it
  403.    is paired, where a service is an abstract access method.  An abstract
  404.    access method might be a software tool, an institution, or a network
  405.    protocol.  The parameter package might be service-specific access
  406.    instructions.  In order to protect creative development of new
  407.    services, there is an extensible class of services for which no
  408.    parameter package semantics common across services may be assumed.
  409.  
  410. 4.8 The set of services is extensible.
  411.  
  412.    New services can be added over time.
  413.  
  414. 4.9 Locators contain no information about the resource other than that
  415.     required by the access mechanism.
  416.  
  417.    The purpose of an Internet locator is only to describe the location
  418.    of a resource, not other properties such as its type, size,
  419.    modification date, etc.  These and other properties belong in a
  420.    resource description standard.
  421.  
  422. 5. Security Considerations
  423.  
  424.    While the requirements have no direct security implications,
  425.    applications based on standards that fulfill them may need to
  426.    consider two potential vulnerabilities.  First, because locators are
  427.    transient, a client using an invalid locator might unwittingly gain
  428.    access to a resource that was not the intended target.  For example,
  429.    when a hostname becomes unregistered for a period of time and then
  430.    re-registered, a locator that was no longer valid during that period
  431.    might once again lead to a resource, but perhaps to one that only
  432.    pretends to be the original resource.
  433.  
  434.    Second, because a locator consists of a service and a parameter
  435.    package, potentially enormous processing freedom is allowed,
  436.    depending on the individual service.  A server is vulnerable unless
  437.    it suitably restricts its input parameters.  For example, a server
  438.    that advertizes locators for certain local filesystem objects may
  439.    inadvertently open a door through which other filesystem objects can
  440.    be accessed.
  441.  
  442.    A client is also vulnerable unless it understands the limitations of
  443.    the service it is using.  For example, a client trusting a locator
  444.    obtained from an uncertain source might inadvertently trigger a
  445.    mechanism that applies charges to a user account.  Having a clear
  446.    definition of service limitations could help alleviate some of these
  447.  
  448.  
  449.  
  450. Kunze                                                           [Page 8]
  451.  
  452. RFC 1736                Recommendations for IRLs           February 1995
  453.  
  454.  
  455.    concerns.
  456.  
  457.    For services that by nature offer a great deal of user freedom
  458.    (remote login for example), the pre-specification of user commands
  459.    within a locator presents vulnerabilities.  With careful command
  460.    screening, the deleterious effects of unknowingly executing (at the
  461.    client or server) an embedded command such as "rm -fr *" can be
  462.    avoided.
  463.  
  464. 6. Conclusion
  465.  
  466.    Resource location standards, which define Internet resource locators,
  467.    give providers the means to describe access information for their
  468.    resources.  They give client developers the ability to access
  469.    disparate resources while hiding access details from users.
  470.  
  471.    Several minimum requirements distinguish an Internet locator from a
  472.    general locator.  Internet resource locators are impermanent handles
  473.    sufficiently qualified for resource access not to depend in general
  474.    on client location.  Locators can be recognized and parsed, and can
  475.    be transmitted unscathed through a variety of human and Internet
  476.    communication mechanisms.
  477.  
  478.    An Internet resource locator consists of a service and access
  479.    parameters meaningful to that service.  The form of the locator does
  480.    not discourage the addition of new services or the migration to other
  481.    resource identifiers.  A clean distinction between resource location,
  482.    resource naming, and resource description standards is preserved by
  483.    limiting Internet locators to no more information than what is
  484.    required by an access mechanism.
  485.  
  486. 7. Acknowledgements
  487.  
  488.    The core requirements of this document arose from a collaboration of
  489.    the following people at the November 1993 IETF meeting in Houston,
  490.    Texas.
  491.  
  492.       Farhad Ankelesaria, University of Minnesota
  493.       John Curran, NEARNET
  494.       Peter Deutsch, Bunyip
  495.       Alan Emtage, Bunyip
  496.       Jim Fullton, CNIDR
  497.       Kevin Gamiel, CNIDR
  498.       Joan Gargano, University of California at Davis
  499.       John Kunze, University of California at Berkeley
  500.       Clifford Lynch, University of California
  501.       Lars-Gunnar Olson, Swedish University of Agriculture
  502.       Mark McCahill, University of Minnesota
  503.  
  504.  
  505.  
  506. Kunze                                                           [Page 9]
  507.  
  508. RFC 1736                Recommendations for IRLs           February 1995
  509.  
  510.  
  511.       Michael Mealing, Georgia Tech
  512.       Mitra, Pandora Systems
  513.       Pete Percival, Indiana University
  514.       Margaret St. Pierre, WAIS, Inc.
  515.       Rickard Schoultz, KTH
  516.       Janet Vratny, Apple Computer Library
  517.       Chris Weider, Bunyip
  518.  
  519. 8. Author's Address
  520.  
  521.    John A. Kunze
  522.    Information Systems and Technology
  523.    293 Evans Hall
  524.    Berkeley, CA  94720
  525.  
  526.    Phone: (510) 642-1530
  527.    Fax:   (510) 643-5385
  528.    EMail: jak@violet.berkeley.edu
  529.  
  530.  
  531.  
  532.  
  533.  
  534.  
  535.  
  536.  
  537.  
  538.  
  539.  
  540.  
  541.  
  542.  
  543.  
  544.  
  545.  
  546.  
  547.  
  548.  
  549.  
  550.  
  551.  
  552.  
  553.  
  554.  
  555.  
  556.  
  557.  
  558.  
  559.  
  560.  
  561.  
  562. Kunze                                                          [Page 10]
  563.  
  564.